import App from './App'
import store from '@/store/store.js'
// #ifndef VUE3
import Vue from 'vue'
import uView from '@/uni_modules/uview-ui'
// 按需导入 $http 对象
import {
	$http
} from '@escook/request-miniprogram'
import $C from '@/common/config.js';
import wsRequest from '@/common/websocket.js'
let Socket = new wsRequest($C.socketUrl, 5000)
Vue.prototype.$Socket = Socket
Vue.use(uView)
// 调用setConfig方法，方法内部会进行对象属性深度合并，可以放心嵌套配置
// 需要在Vue.use(uView)之后执行
uni.$u.setConfig({
	// 修改$u.config对象的属性
	config: {
		// 修改默认单位为rpx，相当于执行 uni.$u.config.unit = 'rpx'
		unit: 'rpx'
	},
})
uni.$http = $http
uni.$http.$selected = {
	name: '请选择'
}
//请求的根路径
$http.baseURL = 'https://app.aixinfang.vip'
// $http.baseURL = 'https://note.zjut.club'
// 请求开始之前做一些事情
uni.$http.beforeRequest = function(options) {
	uni.showLoading({
		title: "数据加载中..."
	})
	// console.log('请求开始之前做的事:authCode')
	// console.log(uni.getStorageSync('authCode'))
	options.header = {
		'authCode': uni.getStorageSync('authCode')
	};
}
// 请求完成之后做一些事情
uni.$http.afterRequest = function(options) {
	if (options.data.status == 20005) {
		uni.$showMsg('用户未登录，请重新登录')
		uni.$u.sleep(1000).then(() => {
			console.log('sleep')
			uni.navigateTo({
				url: '/pages/login/login'
			})
		})
	}
	uni.hideLoading()
}
//封装弹窗
uni.$showMsg = function(title = '数据请求失败', icon = 'none') {
	uni.showToast({
		title,
		icon
	})
}
Vue.config.productionTip = false
App.mpType = 'app'
const app = new Vue({
	...App,
	store
})
app.$mount()
// #endif

// #ifdef VUE3
import {
	createSSRApp
} from 'vue'
export function createApp() {
	const app = createSSRApp(App)
	return {
		app
	}
}
// #endif
